package cn.iocoder.yudao.module.ride.dal.mysql.extend;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.ride.dal.dataobject.extend.ExtendDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.ride.controller.admin.extend.vo.*;

/**
 * 司机扩展 Mapper
 *
 * @author 小胡同学
 */
@Mapper
public interface ExtendMapper extends BaseMapperX<ExtendDO> {

    default PageResult<ExtendDO> selectPage(ExtendPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<ExtendDO>()
                .eqIfPresent(ExtendDO::getDriverId, reqVO.getDriverId())
                .eqIfPresent(ExtendDO::getMobileCarrier, reqVO.getMobileCarrier())
                .eqIfPresent(ExtendDO::getCompanyLogo, reqVO.getCompanyLogo())
                .eqIfPresent(ExtendDO::getDistrictCode, reqVO.getDistrictCode())
                .betweenIfPresent(ExtendDO::getBirthDate, reqVO.getBirthDate())
                .eqIfPresent(ExtendDO::getNationality, reqVO.getNationality())
                .eqIfPresent(ExtendDO::getEthnic, reqVO.getEthnic())
                .eqIfPresent(ExtendDO::getDriverLicenseNo, reqVO.getDriverLicenseNo())
                .eqIfPresent(ExtendDO::getMaritalStatus, reqVO.getMaritalStatus())
                .eqIfPresent(ExtendDO::getForeignLang, reqVO.getForeignLang())
                .eqIfPresent(ExtendDO::getAppVersion, reqVO.getAppVersion())
                .eqIfPresent(ExtendDO::getMapType, reqVO.getMapType())
                .eqIfPresent(ExtendDO::getEducation, reqVO.getEducation())
                .eqIfPresent(ExtendDO::getHouseholdReg, reqVO.getHouseholdReg())
                .eqIfPresent(ExtendDO::getHouseholdAddr, reqVO.getHouseholdAddr())
                .eqIfPresent(ExtendDO::getCurrentAddr, reqVO.getCurrentAddr())
                .eqIfPresent(ExtendDO::getDriverPhotoNo, reqVO.getDriverPhotoNo())
                .eqIfPresent(ExtendDO::getLicenseScanNo, reqVO.getLicenseScanNo())
                .eqIfPresent(ExtendDO::getCarType, reqVO.getCarType())
                .betweenIfPresent(ExtendDO::getLicenseFirstDate, reqVO.getLicenseFirstDate())
                .eqIfPresent(ExtendDO::getLicenseValidStart, reqVO.getLicenseValidStart())
                .eqIfPresent(ExtendDO::getLicenseValidEnd, reqVO.getLicenseValidEnd())
                .eqIfPresent(ExtendDO::getIsTaxiDriver, reqVO.getIsTaxiDriver())
                .eqIfPresent(ExtendDO::getTaxiCertNo, reqVO.getTaxiCertNo())
                .eqIfPresent(ExtendDO::getTaxiCertOrg, reqVO.getTaxiCertOrg())
                .betweenIfPresent(ExtendDO::getTaxiCertDate, reqVO.getTaxiCertDate())
                .betweenIfPresent(ExtendDO::getTaxiCertFirstDate, reqVO.getTaxiCertFirstDate())
                .eqIfPresent(ExtendDO::getTaxiCertValidStart, reqVO.getTaxiCertValidStart())
                .eqIfPresent(ExtendDO::getTaxiCertValidEnd, reqVO.getTaxiCertValidEnd())
                .betweenIfPresent(ExtendDO::getReportDate, reqVO.getReportDate())
                .betweenIfPresent(ExtendDO::getIsFullTime, reqVO.getIsFullTime())
                .eqIfPresent(ExtendDO::getInBlacklist, reqVO.getInBlacklist())
                .eqIfPresent(ExtendDO::getServiceType, reqVO.getServiceType())
                .eqIfPresent(ExtendDO::getContractCompany, reqVO.getContractCompany())
                .eqIfPresent(ExtendDO::getEmergencyContact, reqVO.getEmergencyContact())
                .eqIfPresent(ExtendDO::getEmergencyPhone, reqVO.getEmergencyPhone())
                .eqIfPresent(ExtendDO::getEmergencyAddr, reqVO.getEmergencyAddr())
                .orderByDesc(ExtendDO::getId));
    }

}